FastAPI-তে Query Parameters এবং Path Parameters এর সাথে Type Hinting ব্যবহার করা হয়, যা ডেভেলপারদের কোড লেখার সময় টাইপ যাচাই এবং ডকুমেন্টেশন স্বয়ংক্রিয়ভাবে তৈরি করতে সাহায্য করে। Type Hinting ব্যবহার করলে FastAPI ইনপুট ডেটার টাইপ যাচাই করে এবং এই তথ্য Swagger UI বা ReDoc-এ ডকুমেন্টেশনের অংশ হিসেবে প্রদর্শিত হয়।
এই পর্বে, আমরা FastAPI-তে Query Parameters এবং Path Parameters এর সাথে Type Hinting ব্যবহারের সুবিধা এবং উদাহরণ দেখব।
Path Parameters এর সাথে Type Hinting
Path Parameters হল URL এর অংশ, যেখানে {} ব্র্যাকেটে ডাইনামিক প্যারামিটার পাঠানো হয়। FastAPI-তে Path Parameters এর জন্য Type Hinting সহজে ব্যবহার করা যায়।
উদাহরণ: Path Parameters এর সাথে Type Hinting
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
এখানে, item_id হল একটি Path Parameter, এবং তার টাইপ হল int। FastAPI স্বয়ংক্রিয়ভাবে item_id এর টাইপ যাচাই করবে এবং নিশ্চিত করবে যে এটি একটি পূর্ণসংখ্যা (integer)।
রিকোয়েস্ট উদাহরণ:
GET /items/123
রেসপন্স:
{
"item_id": 123
}
ভুল ইনপুট (যেমন স্ট্রিং):
GET /items/abc
রেসপন্স:
{
"detail": [
{
"loc": ["path", "item_id"],
"msg": "value is not a valid integer",
"type": "type_error.integer"
}
]
}
এখানে, FastAPI item_id এর টাইপ যাচাই করেছে এবং স্ট্রিং পেলে ত্রুটি দেখিয়েছে।
Query Parameters এর সাথে Type Hinting
Query Parameters হল URL এর শেষে ? দিয়ে শুরু হওয়া প্যারামিটার, যা ঐচ্ছিক এবং একাধিক প্যারামিটার পাস করা যায়।
উদাহরণ: Query Parameters এর সাথে Type Hinting
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/")
def read_items(q: str = None, limit: int = 10):
return {"query": q, "limit": limit}
এখানে:
qএকটিstrটাইপের Query Parameter এবং এটি ঐচ্ছিক (Optional)।limitএকটিintটাইপের Query Parameter এবং এর ডিফল্ট মান10।
রিকোয়েস্ট উদাহরণ (Query Parameters):
GET /items/?q=fastapi&limit=5
রেসপন্স:
{
"query": "fastapi",
"limit": 5
}
রিকোয়েস্ট উদাহরণ (Query Parameter না পাঠালে):
GET /items/
রেসপন্স:
{
"query": null,
"limit": 10
}
এখানে, যদি q পাঠানো না হয় তবে তার ডিফল্ট মান None হবে এবং limit এর ডিফল্ট মান 10 হবে।
Path এবং Query Parameters একত্রে Type Hinting সহ ব্যবহার
FastAPI তে Path Parameters এবং Query Parameters একসাথে ব্যবহার করতে পারেন, এবং প্রতিটি প্যারামিটার জন্য টাইপ হিন্টিংও করতে পারেন।
উদাহরণ: Path এবং Query Parameters একত্রে
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None, limit: int = 10):
return {"item_id": item_id, "query": q, "limit": limit}
এখানে:
item_idহলো Path Parameter এবং এর টাইপint।qহলো Query Parameter এবং এর টাইপstr।limitহলো Query Parameter এবং এর টাইপint।
রিকোয়েস্ট উদাহরণ:
GET /items/123?q=fastapi&limit=5
রেসপন্স:
{
"item_id": 123,
"query": "fastapi",
"limit": 5
}
Type Validation এবং Constraints (সীমাবদ্ধতা)
FastAPI তে আপনি Path এবং Query Parameters এর জন্য বিভিন্ন ধরনের validation এবং constraints (সীমাবদ্ধতা) নির্ধারণ করতে পারেন।
উদাহরণ: Validation এবং Constraints সহ Path এবং Query Parameters
from fastapi import FastAPI, Path, Query
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int = Path(..., gt=0), q: str = Query(..., min_length=3, max_length=50)):
return {"item_id": item_id, "query": q}
এখানে:
item_idএকটিPath Parameterযাgt=0constraint দ্বারা যাচাই করা হয়েছে, মানে এটি ০ এর বেশি হতে হবে।qএকটিQuery Parameterযাmin_length=3এবংmax_length=50constraints দ্বারা যাচাই করা হয়েছে, মানে এটি ৩ থেকে ৫০ অক্ষরের মধ্যে হতে হবে।
রিকোয়েস্ট উদাহরণ:
GET /items/123?q=fastapi
রেসপন্স:
{
"item_id": 123,
"query": "fastapi"
}
রিকোয়েস্ট উদাহরণ (ত্রুটি, যদি q ছোট হয়):
GET /items/123?q=f
রেসপন্স (ত্রুটি):
{
"detail": [
{
"loc": ["query", "q"],
"msg": "ensure this value has at least 3 characters",
"type": "value_error.string.min_length"
}
]
}
এখানে, q parameter এর জন্য min_length=3 ভ্যালিডেশন ব্যবহৃত হয়েছে, এবং যদি এটি ৩ অক্ষরের কম হয় তবে FastAPI ত্রুটি দেখাবে।
FastAPI তে Path Parameters এবং Query Parameters এর সাথে Type Hinting ব্যবহারে ডাটার টাইপ এবং ভ্যালিডেশন অত্যন্ত সহজে নিশ্চিত করা যায়। এর মাধ্যমে আপনি একটি পরিষ্কার এবং শক্তিশালী API তৈরি করতে পারেন। Type Hinting ব্যবহার করলে ডকুমেন্টেশন স্বয়ংক্রিয়ভাবে তৈরি হয় এবং ডেভেলপাররা সহজেই জানে কোন প্যারামিটার কী টাইপের হতে হবে। FastAPI স্বয়ংক্রিয়ভাবে প্যারামিটার যাচাই করে এবং ত্রুটি জানিয়ে দেয়, যা ডেভেলপমেন্টকে দ্রুত এবং নির্ভুল করে তোলে।
Read more